package com.chen.stream;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

/**
 * Stream流式计算
 * 题目要求：一分钟内完成此题，只能用一行代码实现！
 * 现在有5个用户！筛选：
 * 1、ID 必须是偶数
 * 2、年龄必须大于23岁
 * 3、用户名转为大写字母
 * 4、用户名字母倒着排序
 * 5、只输出一个用户！
 */
public class StreamTest {
    public static void main(String[] args) {

        User u1 = new User(1,"a",21);
        User u2 = new User(2,"b",22);
        User u3 = new User(3,"c",23);
        User u4 = new User(4,"d",24);
        User u5 = new User(6,"e",25);

        List<User> list = Arrays.asList(u1, u2, u3, u4, u5);

        list.stream()
                // 过滤
                .filter(u -> u.getId() % 2 == 0)
                .filter(u -> u.getAge() > 23)
                // 映射成新的对象
                .map(u -> u.getName().toUpperCase())
                // 排序
                .sorted(Comparator.reverseOrder())
                // 显示多少条记录
                .limit(1)
                // 打印
                .forEach(System.out::println);

    }
}
